其他

【开源推荐 27】新手也能快速上手自动驾驶!微软自动驾驶仿真平台 AirSim(附教程)

2018-01-31 开源最前线

开源最前线(ID:OpenSourceTop) 猿妹 整编

综合自:https://github.com/Microsoft/AirSim、雷锋网等


去年年初微软开源了一个叫做AirSim的研究项目,这是一个高保真系统,用来测试人工智能系统的安全性。对人工智能感兴趣的开发者们可以和我们一起深入了解这个项目。


高自动驾驶仿真系统AirSim


授权协议:MIT

开发语言:C/C++ C#

操作系统:跨平台

GitHub地址:https://github.com/Microsoft/AirSim



AirSim 简介


AirSim 是微软开源的一个跨平台的建立在虚幻引擎( Unreal Engine)上的无人机以及其它自主移动设备的模拟器。 它支持硬件在循环与流行的飞行控制器的物理和视觉逼真模拟。它被开发为一个虚幻的插件,可以简单地放到任何你想要的虚幻环境中。



该模拟器创造了一个高还原的逼真虚拟环境,模拟了阴影、反射等其它现实世界中容易干扰的环境,让无人机不用经历真实世界的风险就能进行训练。


在AirSim的帮助下,开发者可以通过一种叫做“simple_flight”的嵌入式飞行控制器,降低人们模拟无人机飞行的难度。这就让控制和状态估计(state estimation )算法实验操作更加简单容易,无需嵌入领域昂贵的纠错和开发程序。


AirSim 的目标是作为AI研究的平台,以测试深度学习、计算机视觉和自主车辆的增强学习算法。为此, AirSim 还公开了 API,以平台独立的方式检索数据和控制车辆。



AirSim 框架



就当前状态而言,AirSim可以模拟MAVLink和DJI无人机的飞机,可以支持Pixhawk控制器。框架是模块化的,支持添加其它类型的运输工具和控制器。


模拟器框架也包括了用于从GPS和其它传感器上下载数据的API,包括可视化数据等,用于控制移动设备。项目目前有Windows版,微软很快会发布Linux版。其它平台也很容易支持,因为代码从设计开始就使用了CMake,是跨平台的。微软也采用了ZeroMQ和Protobuf技术,也支持Python等其它类型的语言。



AirSim 官方教程


此前,项目相关资料少的可怜,不过,近期,微软的工程师推出了一套 AirSim 官方教程,旨在让专家、研究者以及自动驾驶领域的新手们快速掌握开发自动驾驶的基本技能。


通过该套开源教程,可以学到如何利用搜集到的数据集来训练和测试用于自动驾驶的端对端深度学习模型。你的训练模型将会在 AirSim 的仿真地形中学会如何驾驶汽车,输入的视觉数据只来自一个设置在车前的摄像头。这套课程常被当作自动驾驶的入门项目。


教程结构


教程里的代码都是在 Keras 中实现的,Keras 是一种可以运行在 CNTK、TensorFlow 或者 Theano 之上的深度学习 Python API。Keras 简单易用,是新手们的不二选择,能够削减大多数流行框架学习的难度。


这个教程会用 Python notebooks 的形式展现。Python notebooks 可以让你非常容易地阅读指导和说明,并且在一个文件中编写和运行代码,所有这一切都可以在浏览器窗口中完成。



安装方法


首先,你要了解基础的人工神经网络知识,不过高阶的概念就不需要了,比如 LSTM 或者强化学习。同时,你还应知道卷积网络的工作原理。推荐 Michael Nielsen 写的这本「神经网络和深度学习」,它能够让你在一周之内构建坚实的神经网络知识基础,最主要的是你可以在网络上免费获取


同时,你还要会 Python,至少能够阅读和理解 Python 代码。


安装步骤:

● 安装 AirSim

● 在 Python 3.5 或者更高的版本里安装 Anaconda

● 安装 CNTK 或者安装 TensorFlow

● 安装 h5py

● 安装 Keras

● 将 Keras 后端设置为适配 TensorFlow(默认)或者 CNTK



硬件配置


强烈建议用 GPU 来运行程序,虽说用 CPU 也能训练模型,但 CPU 要花数天才能完成训练。该教程用的是一块 GTX970 GPU,只需要 45 分钟就能完成训练。


如果你没有可用的 GPU,你可以用 Azure 上的深度学习虚拟机,它安装之后会提供所有的依赖和库(此虚拟机需要 py35 环境)。


数据集:

模型需要大量的数据集来训练,你可以在教程里直接下载。第一个 notebook 会告诉你下载完成后如何获取这些数据。数据集最终解压后大小大概为 3.25 GB,虽说训练一辆真正的自动驾驶汽车需要 PB 级的数据,不过这些数据足够该教程的使用。



●本文编号158,以后想阅读这篇文章直接输入158即可

●输入m获取文章目录

↓↓↓ 点击"阅读原文" 进入GitHub详情页 

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存